<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>[Generic Component Framework v3] GCF::AbstractJob Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<!--link href="tabs.css" rel="stylesheet" type="text/css"-->
</head><body>
 <div id="wrapper">
    <div id="logo_box">
        <a class="img_link" href="https://github.com/pnudupa/gcf" target="_blank" ><img style="float:left;margin-left:10px;margin-top:5px;margin-bottom:5px;"src="header_gcf_logo.jpg" alt="GCF LOGO"/></a>
        <a class="img_link" href="https://www.vcreatelogic.com/" target="_blank" ><img style="float:right;margin-right:10px; margin-top: 30px;" src="header_vcl_logo.jpg" alt="VCL LOGO"/></a>
        <div style="clear:both"></div>
    </div>
    <div class="nav">
        <ul>
            <li class="selectedpage">
                <a class="a-home" href="index.html" >
                    <span>Home</span>
                </a>
            </li>
            <li>
                <a class="a-classes " href="classes.html">
                    <span>All Classes</span>
                </a>
            </li>
            <li>
                <a class="a-home " href="gcf_modules.html">
                    <span>Modules</span>
                </a>
            </li>
            <li>
                <a class="a-home " href="gcf_guides_and_videos.html">
                    <span>Guides & Videos</span>
                </a>
            </li>
            <li>
                <a class="a-home " href="gcf_tools_and_inbuilt_components.html">
                    <span>Tools & Components</span>
                </a>
            </li>
        </ul>
    </div>
    <div id="main-content">
        <div class="inside">
        <div>
<!-- Generated by Doxygen 1.8.16 -->
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>GCF</b></li><li class="navelem"><a class="el" href="class_g_c_f_1_1_abstract_job.html">AbstractJob</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="class_g_c_f_1_1_abstract_job-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">GCF::AbstractJob Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__gcf__core.html">GCF Core Module</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>This class offers an abstraction for representing and managing time-consuming jobs in your GCF applications.  
 <a href="class_g_c_f_1_1_abstract_job.html#details">More...</a></p>

<p><code>#include &lt;GCF3/Job&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a58c6b8d8aa3a35b7f82cfd326d0f9116"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a58c6b8d8aa3a35b7f82cfd326d0f9116">AbstractJob</a> (const QString &amp;<a class="el" href="class_g_c_f_1_1_abstract_job.html#acd7ce0b93019c0169252bd9a0f785295">kind</a>, QObject *parent=nullptr)</td></tr>
<tr class="separator:a58c6b8d8aa3a35b7f82cfd326d0f9116"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8687df84aac4be09986a8b7b9c425f73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a8687df84aac4be09986a8b7b9c425f73">~AbstractJob</a> ()</td></tr>
<tr class="separator:a8687df84aac4be09986a8b7b9c425f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce9f2a2a013cfeabbc934f8ce36f292"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a0ce9f2a2a013cfeabbc934f8ce36f292">isStarted</a> () const</td></tr>
<tr class="separator:a0ce9f2a2a013cfeabbc934f8ce36f292"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bc9e9b7da0154118967f631eb977c92"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a1bc9e9b7da0154118967f631eb977c92">isSuspended</a> () const</td></tr>
<tr class="separator:a1bc9e9b7da0154118967f631eb977c92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cc9ddc9d0824b227d1dc5d0d63d6fb8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a2cc9ddc9d0824b227d1dc5d0d63d6fb8">isComplete</a> () const</td></tr>
<tr class="separator:a2cc9ddc9d0824b227d1dc5d0d63d6fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad28546a1caca869e44965196b30a2c76"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#ad28546a1caca869e44965196b30a2c76">start</a> ()</td></tr>
<tr class="separator:ad28546a1caca869e44965196b30a2c76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a021b7455abe0bce2abbfc4ed7227c9f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a021b7455abe0bce2abbfc4ed7227c9f3">cancel</a> ()</td></tr>
<tr class="separator:a021b7455abe0bce2abbfc4ed7227c9f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a821ae50a210c0493f7a3d22d6bcbb6b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a821ae50a210c0493f7a3d22d6bcbb6b6">suspend</a> ()</td></tr>
<tr class="separator:a821ae50a210c0493f7a3d22d6bcbb6b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b4e5520099d9b8430ec9e083bcc2ba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a77b4e5520099d9b8430ec9e083bcc2ba">resume</a> ()</td></tr>
<tr class="separator:a77b4e5520099d9b8430ec9e083bcc2ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6b43946da7fd52ddc66958950e89115"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#ac6b43946da7fd52ddc66958950e89115">retry</a> ()</td></tr>
<tr class="separator:ac6b43946da7fd52ddc66958950e89115"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:aeeac74d0cb439da10344d9d93e7f90cb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#aeeac74d0cb439da10344d9d93e7f90cb">startJob</a> ()=0</td></tr>
<tr class="separator:aeeac74d0cb439da10344d9d93e7f90cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ff6591f74104582d10ab37dcd9f05b1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a9ff6591f74104582d10ab37dcd9f05b1">cancelJob</a> ()</td></tr>
<tr class="separator:a9ff6591f74104582d10ab37dcd9f05b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36cc1bd4ea9673ae4e5085a9baffa47f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a36cc1bd4ea9673ae4e5085a9baffa47f">suspendJob</a> ()</td></tr>
<tr class="separator:a36cc1bd4ea9673ae4e5085a9baffa47f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a862f60cfbf15bc202bf40efd9cc4857f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a862f60cfbf15bc202bf40efd9cc4857f">resumeJob</a> ()</td></tr>
<tr class="separator:a862f60cfbf15bc202bf40efd9cc4857f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0889a81c3fc393b4c1b0a1c9727ab17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#af0889a81c3fc393b4c1b0a1c9727ab17">setTitle</a> (const QString &amp;<a class="el" href="class_g_c_f_1_1_abstract_job.html#af2494a80f15c03914d74a850d3f9f647">title</a>)</td></tr>
<tr class="separator:af0889a81c3fc393b4c1b0a1c9727ab17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae644b1656009061c6d5bc596c3aa1e8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#ae644b1656009061c6d5bc596c3aa1e8a">setDescription</a> (const QString &amp;desc)</td></tr>
<tr class="separator:ae644b1656009061c6d5bc596c3aa1e8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bc24bbe4a12dafd7db63d0d8ce9e6a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a6bc24bbe4a12dafd7db63d0d8ce9e6a2">setIconUrl</a> (const QString &amp;<a class="el" href="class_g_c_f_1_1_abstract_job.html#abf3a87f7e720a03944ae7302e66a3e11">iconUrl</a>)</td></tr>
<tr class="separator:a6bc24bbe4a12dafd7db63d0d8ce9e6a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0041343d12c694c4259e9cb2bfe97997"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a0041343d12c694c4259e9cb2bfe97997">setIcon</a> (const QVariant &amp;<a class="el" href="class_g_c_f_1_1_abstract_job.html#a83cdd67d97ed9bf06d49b82bd84d5817">icon</a>)</td></tr>
<tr class="separator:a0041343d12c694c4259e9cb2bfe97997"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add78a958c599b973c64c725b1d923c5c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#add78a958c599b973c64c725b1d923c5c">setStatus</a> (const QString &amp;statusMsg)</td></tr>
<tr class="separator:add78a958c599b973c64c725b1d923c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aede6df4e474174b8fc1428a513d82450"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#aede6df4e474174b8fc1428a513d82450">setProgress</a> (int val, const QString &amp;msg=QString())</td></tr>
<tr class="separator:aede6df4e474174b8fc1428a513d82450"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c9ac8e122a249ba0a4bcd4971cb38c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a0c9ac8e122a249ba0a4bcd4971cb38c9">setError</a> (const QString &amp;errMsg, bool <a class="el" href="class_g_c_f_1_1_abstract_job.html#a73631bcb275d8d87a40b610e2ee85e0f">abort</a>=false)</td></tr>
<tr class="separator:a0c9ac8e122a249ba0a4bcd4971cb38c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97cfe1710586c96217e1658f7bcd1b4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a97cfe1710586c96217e1658f7bcd1b4f">clearError</a> ()</td></tr>
<tr class="separator:a97cfe1710586c96217e1658f7bcd1b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73631bcb275d8d87a40b610e2ee85e0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a73631bcb275d8d87a40b610e2ee85e0f">abort</a> (const QString &amp;msg)</td></tr>
<tr class="separator:a73631bcb275d8d87a40b610e2ee85e0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a458e5d84cd3bd6b6db81a59b789f340a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a458e5d84cd3bd6b6db81a59b789f340a">done</a> ()</td></tr>
<tr class="separator:a458e5d84cd3bd6b6db81a59b789f340a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:acd7ce0b93019c0169252bd9a0f785295"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#acd7ce0b93019c0169252bd9a0f785295">kind</a></td></tr>
<tr class="separator:acd7ce0b93019c0169252bd9a0f785295"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2494a80f15c03914d74a850d3f9f647"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#af2494a80f15c03914d74a850d3f9f647">title</a></td></tr>
<tr class="separator:af2494a80f15c03914d74a850d3f9f647"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab17c0c746d581890f139ed2e43a77fe3"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#ab17c0c746d581890f139ed2e43a77fe3">description</a></td></tr>
<tr class="separator:ab17c0c746d581890f139ed2e43a77fe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83cdd67d97ed9bf06d49b82bd84d5817"><td class="memItemLeft" align="right" valign="top">QVariant&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a83cdd67d97ed9bf06d49b82bd84d5817">icon</a></td></tr>
<tr class="separator:a83cdd67d97ed9bf06d49b82bd84d5817"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf3a87f7e720a03944ae7302e66a3e11"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#abf3a87f7e720a03944ae7302e66a3e11">iconUrl</a></td></tr>
<tr class="separator:abf3a87f7e720a03944ae7302e66a3e11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f347fbcdaa6953c8a81621526587ff2"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a7f347fbcdaa6953c8a81621526587ff2">status</a></td></tr>
<tr class="separator:a7f347fbcdaa6953c8a81621526587ff2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f344c068c888c4e265241513b61552b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#a2f344c068c888c4e265241513b61552b">progress</a></td></tr>
<tr class="separator:a2f344c068c888c4e265241513b61552b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb45852e1b5856cd143a3c9f3573e85c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#afb45852e1b5856cd143a3c9f3573e85c">hasError</a></td></tr>
<tr class="separator:afb45852e1b5856cd143a3c9f3573e85c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8fae2656d7016bf30395720fc04fd3c"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_abstract_job.html#ac8fae2656d7016bf30395720fc04fd3c">error</a></td></tr>
<tr class="separator:ac8fae2656d7016bf30395720fc04fd3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Typically jobs like downloads, uploads, copy, load and save are time-consuming jobs. You might want to offer the ability to showcase their job progress and also the ability to pause, resume or even cancel such jobs.</p>
<p>The job can be started using <a class="el" href="class_g_c_f_1_1_abstract_job.html#ad28546a1caca869e44965196b30a2c76">start()</a>. The <a class="el" href="class_g_c_f_1_1_abstract_job.html#a821ae50a210c0493f7a3d22d6bcbb6b6">suspend()</a> and <a class="el" href="class_g_c_f_1_1_abstract_job.html#a77b4e5520099d9b8430ec9e083bcc2ba">resume()</a> methods help with suspend and resume of the job. You can call the <a class="el" href="class_g_c_f_1_1_abstract_job.html#a021b7455abe0bce2abbfc4ed7227c9f3">cancel()</a> method to cancel the job entirely. Once cancelled the job can be retried using <a class="el" href="class_g_c_f_1_1_abstract_job.html#ac6b43946da7fd52ddc66958950e89115">retry()</a>.</p>
<p>Methods <a class="el" href="class_g_c_f_1_1_abstract_job.html#acd7ce0b93019c0169252bd9a0f785295">kind()</a>, <a class="el" href="class_g_c_f_1_1_abstract_job.html#af2494a80f15c03914d74a850d3f9f647">title()</a>, <a class="el" href="class_g_c_f_1_1_abstract_job.html#ab17c0c746d581890f139ed2e43a77fe3">description()</a>, <a class="el" href="class_g_c_f_1_1_abstract_job.html#a83cdd67d97ed9bf06d49b82bd84d5817">icon()</a>, <a class="el" href="class_g_c_f_1_1_abstract_job.html#abf3a87f7e720a03944ae7302e66a3e11">iconUrl()</a> <a class="el" href="class_g_c_f_1_1_abstract_job.html#a7f347fbcdaa6953c8a81621526587ff2">status()</a>, <a class="el" href="class_g_c_f_1_1_abstract_job.html#a2f344c068c888c4e265241513b61552b">progress()</a> return various attributes of the job. Status query methods <a class="el" href="class_g_c_f_1_1_abstract_job.html#a1bc9e9b7da0154118967f631eb977c92">isSuspended()</a>, <a class="el" href="class_g_c_f_1_1_abstract_job.html#a0ce9f2a2a013cfeabbc934f8ce36f292">isStarted()</a>, isCompleted() and isRunning() help you to determine the state of the job. If an error was encountered during the execution, the <a class="el" href="class_g_c_f_1_1_abstract_job.html#afb45852e1b5856cd143a3c9f3573e85c">hasError()</a> method would return true and the <a class="el" href="class_g_c_f_1_1_abstract_job.html#ac8fae2656d7016bf30395720fc04fd3c">error()</a> method will return a string description of the error.</p>
<p>Instances of this class are automatically registered with a global <a class="el" href="class_g_c_f_1_1_job_list_model.html">job-list</a> accessible from <a class="el" href="class_g_c_f_1_1_application_services.html#a5876997c792e0da530d72d44e9b08e02">GCF::ApplicationServices::jobs()</a>. You can include jobs into your own instance of <a class="el" href="class_g_c_f_1_1_job_list_model.html">GCF::JobListModel</a> if you want. In which case the job will be available in both the global list and your local list.</p>
<p>If you are subclassing from this class, then you will need to keep the following in mind</p>
<ul>
<li>reimplement the <a class="el" href="class_g_c_f_1_1_abstract_job.html#aeeac74d0cb439da10344d9d93e7f90cb">startJob()</a> method to trigger the start of your job. </li>
<li>optionally reimplement <a class="el" href="class_g_c_f_1_1_abstract_job.html#a36cc1bd4ea9673ae4e5085a9baffa47f">suspendJob()</a> and <a class="el" href="class_g_c_f_1_1_abstract_job.html#a862f60cfbf15bc202bf40efd9cc4857f">resumeJob()</a> to support suspension and resume of your jobs. </li>
<li>optionally reimplement <a class="el" href="class_g_c_f_1_1_abstract_job.html#a9ff6591f74104582d10ab37dcd9f05b1">cancelJob()</a> to offer means to cancel the job entirely </li>
<li>optionally reimplement retryJob() to offer means to customize the way in which a job gets retried after a cancel. </li>
<li>once your job is started (after call to <a class="el" href="class_g_c_f_1_1_abstract_job.html#aeeac74d0cb439da10344d9d93e7f90cb">startJob()</a> ), you must notify progress updates by calling <a class="el" href="class_g_c_f_1_1_abstract_job.html#aede6df4e474174b8fc1428a513d82450">setProgress()</a> regularly. You must notify job completion by calling the <a class="el" href="class_g_c_f_1_1_abstract_job.html#a458e5d84cd3bd6b6db81a59b789f340a">done()</a> method. Jobs can be abruptly aborted using the <a class="el" href="class_g_c_f_1_1_abstract_job.html#a73631bcb275d8d87a40b610e2ee85e0f">abort()</a> method. You can also notify non-critical error messages using the <a class="el" href="class_g_c_f_1_1_abstract_job.html#a0c9ac8e122a249ba0a4bcd4971cb38c9">setError()</a> method. </li>
</ul>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a58c6b8d8aa3a35b7f82cfd326d0f9116"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58c6b8d8aa3a35b7f82cfd326d0f9116">&#9670;&nbsp;</a></span>AbstractJob()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GCF::AbstractJob::AbstractJob </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">QObject *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor. It takes the kind of task as parameter. <code>kind</code> is like category of the task. For example kind may be "Download" or "Upload".</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">kind</td><td>categorization of job. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8687df84aac4be09986a8b7b9c425f73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8687df84aac4be09986a8b7b9c425f73">&#9670;&nbsp;</a></span>~AbstractJob()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GCF::AbstractJob::~AbstractJob </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a0ce9f2a2a013cfeabbc934f8ce36f292"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ce9f2a2a013cfeabbc934f8ce36f292">&#9670;&nbsp;</a></span>isStarted()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool GCF::AbstractJob::isStarted </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true if job has been started otherwise returns false. </dd></dl>

</div>
</div>
<a id="a1bc9e9b7da0154118967f631eb977c92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1bc9e9b7da0154118967f631eb977c92">&#9670;&nbsp;</a></span>isSuspended()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool GCF::AbstractJob::isSuspended </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>whether the job is suspended or not. Job will be in suspended state when user has suspended the job by calling the method <a class="el" href="class_g_c_f_1_1_abstract_job.html#a821ae50a210c0493f7a3d22d6bcbb6b6">GCF::AbstractJob::suspend()</a>. </dd></dl>

</div>
</div>
<a id="a2cc9ddc9d0824b227d1dc5d0d63d6fb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cc9ddc9d0824b227d1dc5d0d63d6fb8">&#9670;&nbsp;</a></span>isComplete()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool GCF::AbstractJob::isComplete </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true if the job has completed otherwise returns false. Job is completed when the <a class="el" href="class_g_c_f_1_1_abstract_job.html#a458e5d84cd3bd6b6db81a59b789f340a">GCF::AbstractJob::done()</a> method is called. </dd></dl>

</div>
</div>
<a id="ad28546a1caca869e44965196b30a2c76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad28546a1caca869e44965196b30a2c76">&#9670;&nbsp;</a></span>start()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> GCF::AbstractJob::start </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Starts the job. If the job is already started or completed, then returns <a class="el" href="class_g_c_f_1_1_result.html" title="This class allows representation of the result of a process and/or function.">GCF::Result</a> with status false and error message. Otherwise starts the job by using virtual function <a class="el" href="class_g_c_f_1_1_abstract_job.html#aeeac74d0cb439da10344d9d93e7f90cb">GCF::AbstractJob::startJob()</a>. </p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> which information about starting of job was successful or not. </dd></dl>

</div>
</div>
<a id="a021b7455abe0bce2abbfc4ed7227c9f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a021b7455abe0bce2abbfc4ed7227c9f3">&#9670;&nbsp;</a></span>cancel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> GCF::AbstractJob::cancel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cancels the job. If the job is already complete or has not yet started, then returns <a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> with status false and error message. Otherwise cancels the job by using virtual function <a class="el" href="class_g_c_f_1_1_abstract_job.html#a9ff6591f74104582d10ab37dcd9f05b1">GCF::AbstractJob::cancelJob()</a>. </p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> which contains success or failure information with error messages. </dd></dl>

</div>
</div>
<a id="a821ae50a210c0493f7a3d22d6bcbb6b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a821ae50a210c0493f7a3d22d6bcbb6b6">&#9670;&nbsp;</a></span>suspend()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> GCF::AbstractJob::suspend </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Suspends the job. If the job is already suspended, completed or has not yet started, then returns <code><a class="el" href="class_g_c_f_1_1_result.html" title="This class allows representation of the result of a process and/or function.">GCF::Result</a></code> with status false and error message otherwise suspends the job by calling virtual function <a class="el" href="class_g_c_f_1_1_abstract_job.html#a36cc1bd4ea9673ae4e5085a9baffa47f">GCF::AbstractJob::suspendJob()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> which contains success or failure information with error messages. </dd></dl>

</div>
</div>
<a id="a77b4e5520099d9b8430ec9e083bcc2ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77b4e5520099d9b8430ec9e083bcc2ba">&#9670;&nbsp;</a></span>resume()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> GCF::AbstractJob::resume </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Resumes the job. If the job is not already in suspended state, then it returns <code><a class="el" href="class_g_c_f_1_1_result.html" title="This class allows representation of the result of a process and/or function.">GCF::Result</a></code> with status false and with proper error message. Otherwise resumes the job by calling virtual function <a class="el" href="class_g_c_f_1_1_abstract_job.html#a862f60cfbf15bc202bf40efd9cc4857f">GCF::AbstractJob::resumeJob()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> which contains success or failure information with proper error messages. </dd></dl>

</div>
</div>
<a id="ac6b43946da7fd52ddc66958950e89115"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6b43946da7fd52ddc66958950e89115">&#9670;&nbsp;</a></span>retry()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> GCF::AbstractJob::retry </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Retries to complete the job by calling virtual function <a class="el" href="class_g_c_f_1_1_abstract_job.html#ad28546a1caca869e44965196b30a2c76">GCF::AbstractJob::start()</a> once again. If the job was not even started once, then it returns <code><a class="el" href="class_g_c_f_1_1_result.html" title="This class allows representation of the result of a process and/or function.">GCF::Result</a></code> with status false and with proper messages.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_g_c_f_1_1_result.html">GCF::Result</a> which contains success or failure information with proper error messages. </dd></dl>

</div>
</div>
<a id="aeeac74d0cb439da10344d9d93e7f90cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeeac74d0cb439da10344d9d93e7f90cb">&#9670;&nbsp;</a></span>startJob()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">GCF::AbstractJob::startJob </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This is a pure virtual function. All jobs inheriting from <code><a class="el" href="class_g_c_f_1_1_abstract_job.html" title="This class offers an abstraction for representing and managing time-consuming jobs in your GCF applic...">AbstractJob</a></code> should reimplement this function and start the processing of their task inside this method. </p>

</div>
</div>
<a id="a9ff6591f74104582d10ab37dcd9f05b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ff6591f74104582d10ab37dcd9f05b1">&#9670;&nbsp;</a></span>cancelJob()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">GCF::AbstractJob::cancelJob </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Classes inheriting from <code><a class="el" href="class_g_c_f_1_1_abstract_job.html" title="This class offers an abstraction for representing and managing time-consuming jobs in your GCF applic...">AbstractJob</a></code> should reimplement this function to provide the cancelling option to their task. </p>

</div>
</div>
<a id="a36cc1bd4ea9673ae4e5085a9baffa47f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36cc1bd4ea9673ae4e5085a9baffa47f">&#9670;&nbsp;</a></span>suspendJob()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">GCF::AbstractJob::suspendJob </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Classes inheriting from <code><a class="el" href="class_g_c_f_1_1_abstract_job.html" title="This class offers an abstraction for representing and managing time-consuming jobs in your GCF applic...">AbstractJob</a></code> should reimplement this function to provide the suspending option to their task. </p>

</div>
</div>
<a id="a862f60cfbf15bc202bf40efd9cc4857f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a862f60cfbf15bc202bf40efd9cc4857f">&#9670;&nbsp;</a></span>resumeJob()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">GCF::AbstractJob::resumeJob </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Classes inheriting from <code><a class="el" href="class_g_c_f_1_1_abstract_job.html" title="This class offers an abstraction for representing and managing time-consuming jobs in your GCF applic...">AbstractJob</a></code> should reimplement this function to provide the resume option to their task. </p>

</div>
</div>
<a id="af0889a81c3fc393b4c1b0a1c9727ab17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af0889a81c3fc393b4c1b0a1c9727ab17">&#9670;&nbsp;</a></span>setTitle()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::setTitle </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>title</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the title of the job as <code>title</code>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">title</td><td>title of the job. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae644b1656009061c6d5bc596c3aa1e8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae644b1656009061c6d5bc596c3aa1e8a">&#9670;&nbsp;</a></span>setDescription()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::setDescription </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>desc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the description of the job as <code>desc</code>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">desc</td><td>description of the job. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a6bc24bbe4a12dafd7db63d0d8ce9e6a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bc24bbe4a12dafd7db63d0d8ce9e6a2">&#9670;&nbsp;</a></span>setIconUrl()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::setIconUrl </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>iconUrl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the icon url of job as <code>iconUrl</code>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iconUrl</td><td>icon url of the job. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a0041343d12c694c4259e9cb2bfe97997"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0041343d12c694c4259e9cb2bfe97997">&#9670;&nbsp;</a></span>setIcon()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::setIcon </td>
          <td>(</td>
          <td class="paramtype">const QVariant &amp;&#160;</td>
          <td class="paramname"><em>icon</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the icon of job as <code>icon</code>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">icon</td><td>icon of the job. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="add78a958c599b973c64c725b1d923c5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add78a958c599b973c64c725b1d923c5c">&#9670;&nbsp;</a></span>setStatus()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::setStatus </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>statusMsg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the status message of job as <code>statusMsg</code>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">statusMsg</td><td>status message of the job. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aede6df4e474174b8fc1428a513d82450"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aede6df4e474174b8fc1428a513d82450">&#9670;&nbsp;</a></span>setProgress()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::setProgress </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>msg</em> = <code>QString()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the progress of job to value <code>val</code> and progress message 'msg'. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>progress value of job in percentage . </td></tr>
    <tr><td class="paramname">msg</td><td>progress message of job. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a0c9ac8e122a249ba0a4bcd4971cb38c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c9ac8e122a249ba0a4bcd4971cb38c9">&#9670;&nbsp;</a></span>setError()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::setError </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>errMsg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>abort</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the error message of job as <code>errMsg</code> . In case if job was aborted, this method will also set the job to be complete. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">errMsg</td><td>error message of job. </td></tr>
    <tr><td class="paramname">abort</td><td>whether the job was aborted. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a97cfe1710586c96217e1658f7bcd1b4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97cfe1710586c96217e1658f7bcd1b4f">&#9670;&nbsp;</a></span>clearError()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::clearError </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Clears the error message of job. </p>

</div>
</div>
<a id="a73631bcb275d8d87a40b610e2ee85e0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a73631bcb275d8d87a40b610e2ee85e0f">&#9670;&nbsp;</a></span>abort()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::abort </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Aborts the job and sets the error message as <code>msg</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>error message that needs to be set while aborting. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a458e5d84cd3bd6b6db81a59b789f340a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a458e5d84cd3bd6b6db81a59b789f340a">&#9670;&nbsp;</a></span>done()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::AbstractJob::done </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the job as completed with progress information to 100 percent. It will also clear the errors. This method should be called when the job has been completed. </p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a id="acd7ce0b93019c0169252bd9a0f785295"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd7ce0b93019c0169252bd9a0f785295">&#9670;&nbsp;</a></span>kind</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">QString GCF::AbstractJob::kind</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the kind of job. Kind is the category of the task. For example kind may be "Download" or "Upload". By default it is an empty string. </dd></dl>

</div>
</div>
<a id="af2494a80f15c03914d74a850d3f9f647"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2494a80f15c03914d74a850d3f9f647">&#9670;&nbsp;</a></span>title</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">QString GCF::AbstractJob::title</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the title of job. By default it is an empty string. </dd></dl>

</div>
</div>
<a id="ab17c0c746d581890f139ed2e43a77fe3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab17c0c746d581890f139ed2e43a77fe3">&#9670;&nbsp;</a></span>description</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">QString GCF::AbstractJob::description</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>description of job. By default it is an empty string. </dd></dl>

</div>
</div>
<a id="a83cdd67d97ed9bf06d49b82bd84d5817"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83cdd67d97ed9bf06d49b82bd84d5817">&#9670;&nbsp;</a></span>icon</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">QVariant GCF::AbstractJob::icon</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the icon of job. By default it returns QIcon(). </dd></dl>

</div>
</div>
<a id="abf3a87f7e720a03944ae7302e66a3e11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf3a87f7e720a03944ae7302e66a3e11">&#9670;&nbsp;</a></span>iconUrl</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">QString GCF::AbstractJob::iconUrl</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the icon url of job. By default it is an empty string. </dd></dl>

</div>
</div>
<a id="a7f347fbcdaa6953c8a81621526587ff2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f347fbcdaa6953c8a81621526587ff2">&#9670;&nbsp;</a></span>status</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">QString GCF::AbstractJob::status</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the status of job. By default it is an empty string. </dd></dl>

</div>
</div>
<a id="a2f344c068c888c4e265241513b61552b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f344c068c888c4e265241513b61552b">&#9670;&nbsp;</a></span>progress</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int GCF::AbstractJob::progress</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the current progress information of job. By default it is 0. </dd></dl>

</div>
</div>
<a id="afb45852e1b5856cd143a3c9f3573e85c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb45852e1b5856cd143a3c9f3573e85c">&#9670;&nbsp;</a></span>hasError</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool GCF::AbstractJob::hasError</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true if the job has otherwise returns false. </dd></dl>

</div>
</div>
<a id="ac8fae2656d7016bf30395720fc04fd3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8fae2656d7016bf30395720fc04fd3c">&#9670;&nbsp;</a></span>error</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">QString GCF::AbstractJob::error</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the error occurred while executing the job. By default it is an empty string. </dd></dl>

</div>
</div>
</div><!-- contents -->
</div>
</div>
</div>
<div class="footer_content">
<table width="100%" class="footer">
<tr>
<td align="left" width="50%">Copyright &copy; 2013-2019,
 <a class="el" href="http://www.vcreatelogic.com" target="_black">VCreate Logic Private Limited</a></td>
<td align="right" width="50%"><a class="el" href="http://www.vcreatelogic.com/products/gcf" target="_black">GCF - Generic Component Framework</a></td>
</tr>
</table>
</div>
</div>
</body>
</html>
